package cn.joyfulmedia.common.log;

import org.slf4j.Logger;

/**
 * 自定义Logger接口,继承sl4j Logger
 *
 * @author yujun
 * @create 2016-11-09 17:11
 */
public interface CustomLogger extends Logger {

    /**
     * 自定义INFO日志输出
     * <p>
     * customWarn(1000000, "参数异常", "传入参数a为:{},b为:{}", "aaaa", "bbbb")
     * 输出为:[code:1000000] [msg:参数异常] 传入参数a为:aaaa,b为:bbbb
     *
     * @param code      code
     * @param codeMsg   code msg
     * @param format    格式化
     * @param arguments 其他参数
     */
    void customInfo(int code, String codeMsg, String format, Object... arguments);

    /**
     * 自定义INFO日志输出
     * <p>
     * customError(1000000, "参数异常", "传入参数a为:{},b为:{}", "aaaa", "bbbb")
     * 输出为:[code:1000000] [msg:参数异常] 传入参数a为:aaaa,b为:bbbb
     *
     * @param code      code
     * @param codeMsg   code msg
     * @param format    格式化
     * @param arguments 其他参数
     */
    void customError(int code, String codeMsg, String format, Object... arguments);

    /**
     * 自定义INFO日志输出
     * <p>
     * customInfo(1000000, "参数异常", "传入参数a为:{},b为:{}", "aaaa", "bbbb")
     * 输出为:[code:1000000] [msg:参数异常] 传入参数a为:aaaa,b为:bbbb
     *
     * @param code      code
     * @param codeMsg   code msg
     * @param format    格式化
     * @param arguments 其他参数
     */
    void customWarn(int code, String codeMsg, String format, Object... arguments);

    void customError(int code, String msg, Throwable t, String format, Object[] arguments);

    // void customError(int code, String codeMsg, String format, );
}
